package com.xing.springbootdemo.base;

import lombok.AllArgsConstructor;
import lombok.Getter;

import javax.servlet.http.HttpServletResponse;


/**
 * 业务代码枚举
 *
 * @author Chill
 */
@Getter
@AllArgsConstructor
public enum ResultCode implements IResultCode {

    /**
     * 操作成功
     */
    SUCCESS(0, "操作成功"),

    /**
     * 业务异常
     */
    FAILURE(HttpServletResponse.SC_BAD_REQUEST, "业务异常"),

    /**
     * 请求未授权
     */
    UN_AUTHORIZED(HttpServletResponse.SC_UNAUTHORIZED, "请求未授权"),

    /**
     * 404 没找到请求
     */
    NOT_FOUND(HttpServletResponse.SC_NOT_FOUND, "404 没找到请求"),

    /**
     * 消息不能读取
     */
    MSG_NOT_READABLE(HttpServletResponse.SC_BAD_REQUEST, "消息不能读取"),

    /**
     * 不支持当前请求方法
     */
    METHOD_NOT_SUPPORTED(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "不支持当前请求方法"),

    /**
     * 不支持当前媒体类型
     */
    MEDIA_TYPE_NOT_SUPPORTED(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE, "不支持当前媒体类型"),

    /**
     * 请求被拒绝
     */
    REQ_REJECT(HttpServletResponse.SC_FORBIDDEN, "请求被拒绝"),

    /**
     * 服务器异常
     */
    INTERNAL_SERVER_ERROR(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "服务器异常"),

    /**
     * 缺少必要的请求参数
     */
    PARAM_MISS(HttpServletResponse.SC_BAD_REQUEST, "缺少必要的请求参数"),

    /**
     * 请求参数类型错误
     */
    PARAM_TYPE_ERROR(HttpServletResponse.SC_BAD_REQUEST, "请求参数类型错误"),

    /**
     * 请求参数绑定错误
     */
    PARAM_BIND_ERROR(HttpServletResponse.SC_BAD_REQUEST, "请求参数绑定错误"),

    /**
     * 参数校验失败
     */
    PARAM_VALID_ERROR(HttpServletResponse.SC_BAD_REQUEST, "参数校验失败"),

    //*************************10001-10100为群发任务相关提示*********************************
    /**
     * 发送时间错误
     */
    MASS_SEND_TIME_ERROR(10001,"发送时间错误，如果是定时发送，时间要比当前时间晚5分钟"),
    /**
     * 图片上传错误
     */
    UPLOAD_IMAGE_ERROR(10002,"图片上传失败，请检查文件格式，图片目前仅支持jpg格式"),
    /**
     * 未选择文件
     */
    FILE_NOT_EXIST_ERROR(10003,"请选择需要上传的文件"),
    /**
     * 客户群群发错误
     */
    MASS_CHAT_SEND_ERROR(10004,"客户群群发发送失败"),
    /**
     * 添加群发任务接口调用失败
     */
    MASS_RPC_SEND_ERROR(10005,"添加企业群发任务接口调用失败"),
    /**
     * 员工不存在
     */
    MASS_NOT_EXIST_SEND_USER(10006,"请选择有效员工"),
    /**
     * 调用微信发送消息接口失败
     */
    MASS_REMIND_ERROR(10007,"提醒失败"),
    /**
     * 统计时间错误
     */
    INDEX_COUNT_TIME_ERROR(10008,"请选择合理的统计起始时间"),
    /**
     * 群发任务不存在
     */
    MASS_NOT_EXIST_ERROR(10009,"群发任务不存在"),
    /**
     * 添加群发任务接口调用异常
     */
    MASS_SEND_ERROR(10010,"调用微信添加群发任务接口异常"),
    /**
     * 微信群发任务结果详情调用失败
     */
    WX_MASS_RESULT_ERROR(10011,"获取微信群发任务结果失败"),
    /**
     * 群发内容不能为空
     */
    DY_MASS_CONTENT_ERROR(10015,"群发内容不能为空"),
    /**
     * 客户不存在
     */
    MASS_NOT_EXIST_CLIENT(100012,"外部联系人（客户）不存在"),
    /**
     * 企业无授权信息
     */
    CORP_NOT_APPLICATION_INFO(100013,"企业无应用授权信息"),
    /**
     * 抖音tid不存在
     */
    DY_MASS_ERROR_NONE_TID(100014,"暂无授权的抖音企业号"),
    /**
     * 抖音粉丝群发编辑失败
     */
    DY_MASS_EDIT_ERROR(100015,"只有定时的群发任务才能编辑"),
    /**
     * 群发任务错误
     */
    MASS_TYPE_ERROR(100016,"群发任务类型错误"),
    /**
     * 群发间隔时间错误
     */
    MASS_SLEEP_TIME_ERROR(100017,"自定义群发时间间隔错误，最小间隔不能为小于10s"),
    /**
     * 短信剩余数量不足
     */
    CORP_AVAILABLE_SMS_NUM_LACK(100018,"短信剩余数量不足"),

    ;
    /**
     * code编码
     */
    final int code;
    /**
     * 中文信息描述
     */
    final String message;

}